// 封装axios核心库
import axios from 'axios'
//引入node的内置模块 querystring 字符串查询工具
import qsString from 'querystring'
//基础地址
let baseUrl = '/api'


//拦截器（请求拦截器）
axios.interceptors.request.use(req => {
    return req
})
//响应拦截器
axios.interceptors.response.use(res => res.data)


//get 方式

/* 
axios.get(url,{params:{key:value}})
url   要访问 的接口地址
params  参数，有就有 没有就默认  {}
*/
export const get = (url, params = {}) => {
    return new Promise((resolve, reject) => {
        axios.get(baseUrl + url, {
            params
        })
            .then(res => {
                resolve(res)
            })
            .catch(err => {
                reject(err)
            })
    })
}

//post
/* 
axios.post(url,{key:value})

封装
url  要访问的接口地址

{} 参数  params

post 比较特殊 ，post就是表单提交 有没有上传文件
有 怎么办
没有  怎么办
*/

export const post = (url, params = {}, isFile = false) => {
    let data = {}
    //针对于是否有上传文件要进行判断
    if (isFile) {
        data = new FormData()
        for (let i in params) {
            data.append(i, params[i])
        }
    } else {
        data = qsString.stringify(params)
    }
    return new Promise((resolve, reject) => {
        axios.post(baseUrl + url, data)
            .then(res => {
                resolve(res)
            })
            .catch(err => {
                reject(err)
            })
    })
}

